<?php

/**
 * Pedido
 *  
 * @author Tiago Santos
 * @version 
 */

class Pedido {
	private $table;
	
	public function getDbTable(){
		if($this->table === NULL){
			require_once APPLICATION_PATH . '/models/DbTable/Pedido.php';
			$this->table = new PedidoDbTable();
		}
		return $this->table;
	}
	
	public function getAll(){
		$dt = $this->getDbTable();
		$select = $dt->select()->order('cd_pedido DESC');
		$rows = $dt->fetchAll($select)->toArray();
		return $rows;
	}
	
	public function getByCliente($codigo){
		$dt = $this->getDbTable();
		$select = $dt->select()
			->setIntegrityCheck(false)
			->from(DB_SCHEMA.'.pedido')
			->join(DB_SCHEMA.'.pedido_situacao','pedido_situacao.cd_pedido_situacao = pedido.cd_pedido_situacao')
			->where('cd_cliente = '.$codigo)
			->order('cd_pedido DESC');
		$rows = $dt->fetchAll($select);
		$rows = $rows->toArray();
		return $rows;
	}
	
	public function getById($codigo){
		$dt = $this->getDbTable();
		$select = $dt->select()
			->setIntegrityCheck(false)
			->from(DB_SCHEMA.'.pedido')
			->join(DB_SCHEMA.'.pedido_situacao','pedido_situacao.cd_pedido_situacao = pedido.cd_pedido_situacao')
			->where('cd_pedido = ' . $codigo);
		$rows = $dt->fetchAll($select);
		$rows = $rows->toArray();
		return $rows[0];
	}
	
	public function save($array){
		if(trim($array['cd_pedido'])!=''){
			return $this->update($array,"cd_pedido = " . $array['cd_pedido']);
		}else{
			unset($array['cd_pedido']);
			return $this->getDbTable()->insert($array);
		}
	}
	
	public function update($array,$where){
		return $this->getDbTable()->update($array,$where);
	}
	
	public function delete($where){
		$this->getDbTable()->delete($where);
	}
}
